﻿using System;
using System.Data;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Collections.Generic;

namespace Amoo.Code.Data
{
    public class Noticia : BaseData
    {

        public List<Entity.Noticia> GetByIdComunidade(Entity.Noticia pNoticia)
        {
            IDataReader dr = ExecuteReader("select * from Noticia where idComunidade = " + pNoticia.idComunidade + " ORDER BY idNoticia DESC");
            List<Entity.Noticia> returnVal = new List<Entity.Noticia>();
            if (dr != null)
            {
                while (dr.Read())
                {
                    returnVal.Add(Entity.Noticia.Load(dr));
                }
            }
            return returnVal;
        }
        
        public Entity.Noticia GetById(Entity.Noticia pNoticia)
        {
            IDataReader dr = ExecuteReader("select * from Noticia where idNoticia = " + pNoticia.idNoticia);
            if (dr != null)
            {
                if (dr.Read())
                {
                    return Entity.Noticia.Load(dr);
                }
            }
            return null;
        }

        public List<Entity.Noticia> GetForMarquee(int idComunidade)
        {
            IDataReader dr = ExecuteReader(@"SELECT *
            FROM noticia
            where idComunidade = " + idComunidade.ToString() + @"
            ORDER BY idNoticia DESC LIMIT 3");
            List<Entity.Noticia> returnVal = new List<Entity.Noticia>();
            if (dr != null)
            {
                while (dr.Read())
                {
                    returnVal.Add(Entity.Noticia.Load(dr));
                }
            }
            return returnVal;
        }

        internal void Alterar(Code.Entity.Noticia pNoticia)
        {
            string query = @"UPDATE Noticia SET 
                            dsTitulo = '" + pNoticia.dsTitulo + @"', 
                            dsHTML = '" + pNoticia.dsHtml + @"',
                            dsPalavrasBusca = '" + pNoticia.dsPalavrasBusca + @"',
                            bolNoticiaAtiva = '" + pNoticia.bolNoticiaAtiva + @"'
                    WHERE idComunidade = " + pNoticia.idComunidade.ToString() + " and idNoticia = " + pNoticia.idNoticia.ToString() + "";
            Execute(query);
        }

        internal void Insert(Code.Entity.Noticia pNoticia)
        {
            string query = @"INSERT INTO Noticia (idComunidade, dsTitulo, dsHtml, dsPalavrasBusca, bolNoticiaAtiva, dtCriacao)
                   VALUES ({0}, '{1}', '{2}', '{3}', 1, sysdate())";
            query = string.Format(query, pNoticia.idComunidade.ToString(), pNoticia.dsTitulo, pNoticia.dsHtml, pNoticia.dsPalavrasBusca);
            Execute(query);
        }

        internal void Delete(Code.Entity.Noticia pNoticia)
        {
            string query = @"Delete from Noticia WHERE idComunidade = " + pNoticia.idComunidade.ToString() + " and idNoticia=" + pNoticia.idNoticia.ToString() + "";
            Execute(query);
        }

    }
}
